Page({
  data: {
    level1Id: null,       // 当前一级分类ID
    level1Name: "",       // 当前一级分类名称
    level2Categories: [], // 二级分类列表
    currentLevel2Id: null,// 当前选中的二级分类ID
    recipes: [],          // 当前二级分类下的菜谱列表
    loading: true,        // 加载状态
    error: false          // 错误状态
  },

  onLoad(options) {
    const { level1Id, level1Name } = options;
    this.setData({
      level1Id: Number(level1Id),
      level1Name
    });

    // 加载二级分类数据（带token处理）
    this.loadLevel2Categories();
  },

  // 加载二级分类数据（对接真实接口，带token）
  loadLevel2Categories() {
    // 显示加载状态
    this.setData({
      loading: true,
      error: false
    });

    // 获取token
    let token = '';
    try {
      token = wx.getStorageSync('token');
      console.log('获取到的token:', token);
    } catch (e) {
      console.error('获取token失败', e);
    }

    // 显示加载提示
    wx.showLoading({
      title: '加载中...',
      mask: true
    });

    const { level1Id } = this.data;
    wx.request({
      url: 'http://localhost/dev-api/recipes/categories/list', // 接口基础路径（假设已配置dev-api）
      method: 'GET',
      data: {
        pageNum: 1,
        pageSize: 100,
        parentId: level1Id, // 根据一级分类ID筛选二级分类
        sort:0
      },
      header: {
        'Authorization': token, // 携带token
        'Content-Type': 'application/json'
      },
      success: (res) => {
        wx.hideLoading(); // 隐藏加载提示

        if (res.data.code === 200) {
          const level2Categories = res.data.rows || [];
          this.setData({
            level2Categories,
            loading: false
          });

          // 默认选中第一个二级分类并加载菜谱
          if (level2Categories.length > 0) {
            this.setData({
              currentLevel2Id: level2Categories[0].id
            });
            this.loadRecipesByLevel2Id(level2Categories[0].id, token);
          }
        } else {
          this.setData({
            error: true,
            loading: false
          });
          wx.showToast({
            title: '二级分类加载失败',
            icon: 'none'
          });
        }
      },
      fail: () => {
        wx.hideLoading();
        this.setData({
          error: true,
          loading: false
        });
        wx.showToast({
          title: '网络请求失败',
          icon: 'none'
        });
      }
    });
  },

  // 加载二级分类下的菜谱（带token）
  loadRecipesByLevel2Id(level2Id, token) {
    // 若调用时未传token，重新获取
    if (!token) {
      try {
        token = wx.getStorageSync('token');
      } catch (e) {
        console.error('重新获取token失败', e);
        wx.showToast({
          title: '授权异常',
          icon: 'none'
        });
        return;
      }
    }

    wx.showLoading({
      title: '加载菜谱中...',
      mask: true
    });

    wx.request({

      url: 'http://localhost/dev-api/recipes/recipes/list', // 菜谱接口路径
      method: 'GET',
      data: {
        pageNum: 1,
        pageSize: 10,
        categoryId: level2Id ,// 根据二级分类ID筛选菜谱
        status:1
      },
      header: {
        'Authorization': token, // 携带token
        'Content-Type': 'application/json'
      },
      success: (res) => {
        wx.hideLoading();

        if (res.data.code === 200) {
          // 映射菜谱数据到页面所需格式
          const recipes = (res.data.rows || []).map(recipe => {
            // 根据媒体类型选择封面图
            let coverImg = 'https://picsum.photos/300/200?random=default'; // 默认图片

            if (recipe.mediaType === 2) {
              // 视频类型：使用videoDescription作为封面图
              coverImg = recipe.videoDescription 
                ? `http://localhost:8080${recipe.videoDescription}` 
                : 'https://picsum.photos/300/200?random=video';
            } else if (recipe.mediaType === 1) {
              // 图片类型：使用coverUrl作为封面图
              coverImg = recipe.coverUrl 
                ? `http://localhost:8080${recipe.coverUrl}` 
                : 'https://picsum.photos/300/200?random=image';
            }

            return {
              id: recipe.id,
              title: recipe.title,
              coverImg: coverImg,
              mediaType: recipe.mediaType || 1, // 添加媒体类型字段
              cookTime: recipe.cookTimeOptions?.name || '未知时间',
              difficulty: recipe.difficultyOptions?.name || '未知难度',
              likes: recipe.collectCount || 0
            };
          });

          this.setData({
            recipes
          });
        } else {
          wx.showToast({
            title: '菜谱加载失败',
            icon: 'none'
          });
        }
      },
      fail: () => {
        wx.hideLoading();
        wx.showToast({
          title: '菜谱请求失败',
          icon: 'none'
        });
      }
    });
  },

  // 切换二级分类
  changeLevel2(e) {
    const level2Id = e.currentTarget.dataset.id;
    this.setData({
      currentLevel2Id: level2Id,
      recipes: []
    });

    // 获取token（切换时重新拿token，避免过期）
    let token = '';
    try {
      token = wx.getStorageSync('token');
    } catch (e) {
      console.error('切换时获取token失败', e);
      wx.showToast({
        title: '授权异常',
        icon: 'none'
      });
      return;
    }

    this.loadRecipesByLevel2Id(level2Id, token);
  },

  // 跳转到菜谱详情页
  navigateToDetail(e) {
    const recipeId = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: `/index/pages/detail/detail?id=${recipeId}`
    });
  },

  // 返回一级分类页
  navigateBack() {
    wx.navigateBack();
  }
});